/*
 * @Descripttion: 
 * @version: 
 * @Author: ada.wu
 * @Date: 2024-01-05 10:17:42
 * @LastEditors: ada.wu
 * @LastEditTime: 2024-03-08 11:24:13
 */
import {CSSProperties, VNodeChild} from 'vue';
import {createTypes, VueTypeValidableDef, VueTypesInterface} from 'vue-types';

export type VueNode = VNodeChild | JSX.Element;

type PropTypes = VueTypesInterface & {
    readonly style: VueTypeValidableDef<CSSProperties>;
    readonly VNodeChild: VueTypeValidableDef<VueNode>;
};

const propTypes = createTypes({
    func: undefined,
    bool: undefined,
    string: undefined,
    number: undefined,
    object: undefined,
    integer: undefined,
}) as PropTypes;

propTypes.extend([
    {
        name: 'style',
        getter: true,
        type: [String, Object],
        default: undefined,
    },
    {
        name: 'VNodeChild',
        getter: true,
        type: undefined,
    },
]);
export {propTypes};
